1. Field of the Invention
The present invention relates to a recording apparatus and a recording method with an improved recording speed of recording data on an optical disc.
2. Description of Related Art
FIG. 34 is a Blu-ray disc recording apparatus disclosed in Japanese Unexamined Patent Application Publication No. 2007-042234 (Ariyama). As shown in FIG. 34, the recording apparatus 101 includes a data buffer 102, a buffer controller 103, and an encoder 104. The data buffer 102 buffers user data transferred from a host (not shown). The host may be an audio-visual (AV) system, a personal computer (PC) or the like, and it directs the recording apparatus 101 to record user data or read out data recorded on a disc.
The buffer controller 103 controls reading of user data from the data buffer 102, and it reads necessary user data as appropriate and transfers the data to the encoder 104. To calculate an error detecting code (EDC), the recording apparatus according to the exemplary embodiment executes a process of calculating an EDC intermediate value from user data in the latter half of an even-number sector, i.e. about one-fourth of user data in a whole data block (which is referred to hereinafter as a path 1), and a process of calculating an EDC from the remaining three-fourth of user data and the EDC intermediate value (hereinafter as a path 2) in parallel. Therefore, the buffer controller 103 has a channel CH1 for reading, from the data buffer 102, and outputting the user data to be used for processing of the path 1 and a channel CH2 for reading and outputting the user data to be used for processing of the path 2.
The encoder 104 adds an EDC to the user data and scrambles the EDC-added user data. The encoder 104 then outputs the scrambled data (which is referred to hereinafter as recording data) and an ECC obtained from the recording data. The ECC and the recording data are then combined with a BIS code, modulated by 1-7PP, and finally recorded onto a disc.
The encoder 104 includes an EDC generator 131, which serves as a first operation unit, for executing the above-described processing of the path 1, an EDC table 132, and an EDC buffer 133. The encoder 104 further includes an EDC generator 134, which serves as a second operation unit, for calculating an EDC in the path 2. In the processing of the path 1, the EDC generator 131 performs operation by referring to the EDC table 132 and the EDC buffer 133. A result of the operation performed by the EDC generator 131 in the path 1 is an EDC intermediate value, which is described later. The EDC intermediate value is written back to the EDC buffer 133. In the processing of the path 2, the EDC generator 134 calculates an EDC by referring to the EDC table 132 and the EDC buffer 133 and writes the calculated EDC back to the EDC buffer 133.
The encoder 104 further includes an integration unit 135 that adds the EDC stored in the EDC buffer 133 to the user data which is read from the channel CH2 and outputs the EDC-added data. The encoder 104 also includes a scrambler 136 that scrambles the EDC-added data which is output from the integration unit 135 and a scramble value generator 137 that calculates a scramble value which is necessary when the scrambler 136 performs scrambling. The encoder 104 further includes a reordering buffer 138 that rearranges the scrambled data which is scrambled by the scrambler 136 into the sequence in a recording frame direction P. The integration unit 135, the scrambler 136, the scramble value generator 137, and the reordering buffer 138 constitute a scramble processing unit that calculates recording data based on the user data and the EDC and outputs the data.
Further, the encoder 104 includes an ECC generator 139 that generates an ECC from the scrambled data and an ECC buffer 140 that buffers the ECC generated by the ECC generator 139. The data read out from the reordering buffer 138 in the sequence of the recording frame direction P is output as recording data. Further, the data of the ECC buffer 140 is output as ECC parity. The recording data and the ECC parity are output to an integration unit, which is not shown, where the recording data is rearranged in rows and columns, an ECC is added thereto, and then the data is interleaved, thereby creating an ECC cluster.
Further, in another encoding device that generates a BIS (a BIS encoding device), which is not shown, an access block is generated from user control data and an address unit number, and a BISECC is also generated. Then, the access block and the BISECC from the BIS encoding device are also supplied to the integration unit, thereby creating a BIS block. The BIS block is further interleaved to create a BIS cluster. Then, an ECC cluster is created by integrating the BIS cluster with an LDC cluster, and further a physical cluster is created by adding a frame sync and a DSV control bit. Then, 17-PP modulation is made on a recording frame and run-in and run-out are added, so that a recording unit block RUB is created. After that, data recording onto a disc is executed through a disc controller, using RUB as unit of recording.
Incidentally, for a Blu-ray disc, there is a code which needs to be generated before data recording. Then, because the recording is done on the fly, the code generation and the recording are executed in parallel. For the code generation and the recording, data access of one cluster each, i.e. two clusters in total, to a data buffer is generally required. On the other hand, in the technique disclosed in Ariyama, the code generation can be done with data access of only 0.25 cluster to a data buffer by an inventive code generation method. Access to the data buffer in the code generation and the recording is thereby reduced to 1.25 cluster, thus enabling compatibility with high speed operation.
To achieve high speed encoding, a high-cost data buffer that operates with a high frequency operating clock is required, which further increases power consumption. In view of this, according to Ariyama, the first operation unit and the second operation unit are provided as described above. For an even-number sector (operation target sector) having a structure in which an EDC is added at the end of the sector when reading in the sequence of a user data direction Q as a first sequence, and an EDC is added in the middle of reading the sector when reading in the sequence of a recording frame direction P, for example, which is different from the user data direction Q, the first operation unit calculates an EDC intermediate value from the latter half, which is a part of the sector. This processing is called the path 1. Note that, for an odd-number sector, the first operation unit does not generate an EDC intermediate value. The second operation unit calculates an EDC of the even-number sector from the remaining part of the even-number sector excluding the above part and the EDC intermediate value. An EDC of the odd-number sector is generated from data of the odd-number sector as a whole. The processing is called the path 2. By calculating the EDC using those two operation units, the amount of data access to the data buffer is reduced. This enables further improvement of encoding specification and achieves lower power consumption and lower costs.
FIG. 35 is a view to illustrate user data used in the paths 1 and 2 in Ariyama. The data block, which is a unit of processing in the encoder, has the even-number sector and the odd-number sector described above. In Ariyama, the data block is read out in the user data direction Q as the first sequence in the path 1. On the other hand, in the path 2, the data in the user data direction Q is rearranged into the sequence of the recording frame direction P. The reordering buffer is used at this time. The reordering buffer has a size of m bytes, which is the same as a burst transfer size of the data buffer, in the column direction, and 304 bytes, which is one cluster, in the row direction, for example. In the reordering buffer, data in the user data direction Q is stored m bytes each, for 304 bytes in the recording frame direction P. After that, the data is read out in the recording frame direction P, so that the data in the user data direction Q can be rearranged into the data in the sequence of the recording frame direction P.
As shown in FIG. 35, the even-number sector is a code string to which an EDC is added before the entire sector is transferred. Thus, in the path 1, operation of a part of the even-number sector being the operation target sector in the path 2, which is the latter half of the even-number sector to be read out after the timing to add an EDC, is executed to calculate an EDC intermediate value. In the path 2, operation of the remaining part of the even-number sector and the entire part of the odd-number sector is executed to calculate an EDC. Because the odd-number sector is a code string (non-operation target sector) having a structure in which an EDC is added at the end of the sector in any case of when data is read out in the sequence of the user data direction Q or when the user data of the burst transfer size m in the sequence of the user data direction Q is read out in the sequence of the recording frame direction P, it is not necessary to calculate an EDC intermediate value in advance in the path 1.
In this manner, the technique of Ariyama generates the EDC intermediate value by reading only a part of the even-number sector, rather than generating the EDC by reading one whole cluster in advance. The technique then calculates the EDC at the same time as when reading and recording one cluster in the path 2. As described earlier, because the EDC can be generated only after reading all data in the case of calculating the EDC at the same time, it is impossible for the even-number sector to generate the EDC while recording. Therefore, the technique enables the calculation of the EDC while performing the recording through use of the EDC intermediate value, which is an operation value generated only from a part for which the recording cannot be made in time. Note that the EDC intermediate value is described later.
As described above, the recording apparatus disclosed in Ariyama can generate the EDC and record data by access of about 1.25 cluster, not 2 clusters.